//package com.jweb.util;
//
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.InputStream;
//import java.text.SimpleDateFormat;
//
//import org.apache.poi.hssf.usermodel.HSSFDateUtil;
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//import org.apache.poi.ss.usermodel.Cell;
//import org.apache.poi.ss.usermodel.Workbook;
//import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//
//public class ExcelUtil {
//
//	/**
//	 * 根据文件名取得Workbook对象
//	 * 
//	 * @param fileName
//	 * @return
//	 */
//	public static Workbook readExcelFile(String fileName) {
//		File file = new File(fileName);
//		return readExcelFile(file);
//	}
//
//	/**
//	 * 根据文件名取得Workbook对象
//	 * 
//	 * @param fileName
//	 * @return
//	 */
//	public static Workbook readExcelFile(File file) {
//		Workbook wb = null;
//		// 检查文件是否存在
//		if (file == null || !file.exists()) {
//			return null;
//		}
//		String fileName = file.getName().substring(0, file.getName().length() - 4);
//		// 检查文件名是否为空或者是否是Excel格式的文件
//		if (fileName == null || !fileName.matches("^.+\\.(?i)((xls)|(xlsx))$")) {
//			return null;
//		}
//		// 判断文件是2003还是2007
//		boolean isExcel2003 = true;
//		if (fileName.matches("^.+\\.(?i)(xlsx)$")) {
//			isExcel2003 = false;
//		}
//		// 取得Workbook对象
//		InputStream ins;
//		try {
//			ins = new FileInputStream(file);
//			wb = isExcel2003 ? new HSSFWorkbook(ins) : new XSSFWorkbook(ins);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return wb;
//	}
//
//	/**
//	 * 根据输入流取得Workbook对象
//	 * 
//	 * @param ins
//	 * @param isExcel2003
//	 *            是否2003
//	 * @return
//	 */
//	public static Workbook readExcelFile(InputStream ins, boolean isExcel2003) {
//		Workbook wb = null;
//		try {
//			wb = isExcel2003 ? new HSSFWorkbook(ins) : new XSSFWorkbook(ins);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return wb;
//	}
//
//	/**
//	 * 强制获取String类型的值。世界顿时清静了。
//	 * 
//	 * @param cell
//	 * @return
//	 */
//	public static String getCellValueString(Cell cell) {
//		if (cell == null)
//			return "";
//		if (cell.getCellType() != Cell.CELL_TYPE_STRING)
//			cell.setCellType(Cell.CELL_TYPE_STRING);
//		return cell.getStringCellValue() + "";
//	}
//
//	/**
//	 * 取得单元格中的值，以字符串形式返回
//	 * 
//	 * @param cell
//	 * @return
//	 */
//	public static String getCellValue(Cell cell) {
//		String value = "";
//		if (cell == null) {
//			return value;
//		}
//		switch (cell.getCellType()) {
//		case Cell.CELL_TYPE_NUMERIC: // 数值型
//			if (HSSFDateUtil.isCellDateFormatted(cell)) {
//				// 如果是date类型则 ，获取该cell的date值
//				value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
//			} else { // 纯数字
//				value = String.valueOf(cell.getNumericCellValue());
//			}
//			break;
//		case Cell.CELL_TYPE_STRING: // 字符串
//			value = cell.getStringCellValue() + "";
//			break;
//		case Cell.CELL_TYPE_BOOLEAN: // Boolean
//			value = cell.getBooleanCellValue() + "";
//			break;
//		case Cell.CELL_TYPE_FORMULA: // 公式
//			value = cell.getCellFormula() + "";
//			break;
//		case Cell.CELL_TYPE_BLANK: // 空值
//			value = "";
//			break;
//		case Cell.CELL_TYPE_ERROR: // 故障
//			value = "";
//			break;
//		default:
//			// 未知类型
//			value = "";
//			break;
//		}
//		return value;
//	}
//
//	/**
//	 * 取得单元格中的值，以字符串形式返回
//	 * 
//	 * @param cell
//	 * @return
//	 */
//	public static String getCellValue2(Cell cell) {
//		String value = "";
//		if (cell == null) {
//			return value;
//		}
//		switch (cell.getCellType()) {
//		case Cell.CELL_TYPE_NUMERIC: // 数值型
//			if (HSSFDateUtil.isCellDateFormatted(cell)) {
//				// 如果是date类型则 ，获取该cell的date值
//				value = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()));
//			} else { // 纯数字
//				value = String.valueOf(cell.getNumericCellValue());
//			}
//			break;
//		case Cell.CELL_TYPE_STRING: // 字符串
//			value = cell.getStringCellValue() + "";
//			break;
//		case Cell.CELL_TYPE_BOOLEAN: // Boolean
//			value = cell.getBooleanCellValue() + "";
//			break;
//		case Cell.CELL_TYPE_FORMULA: // 公式
//			value = cell.getCellFormula() + "";
//			break;
//		case Cell.CELL_TYPE_BLANK: // 空值
//			value = "";
//			break;
//		case Cell.CELL_TYPE_ERROR: // 故障
//			value = "";
//			break;
//		default:
//			// 未知类型
//			value = "";
//			break;
//		}
//		return value;
//	}
//}
